import axios from 'axios'
import store from '@/store'
// 引入路由
import router from '@/router' 

// 创建一个新的axios实例
const service = axios.create({
    // axios根地址
//  baseURL:'http://ihrm.itheima.net/api'
 baseURL:'/api'

})

// 请求拦截器
service.interceptors.request.use(
  config => {
    const token = store.state.user.token
    // 如果当前存有token,就加在请求头上
    if (token) {
      config.headers['Authorization'] = `Bearer ${token}`
    }
    return config
  }
  , error => {
  return Promise.reject(error)
}) 

// 响应拦截器
service.interceptors.response.use(response => {
  
    if (response.data.success) {
      // 操作成功
      return response.data
    } else {
      // 如果success为false 业务出错,直接触发reject 
      // 被catch分支捕获
      return Promise.reject(new Error('请求错误'))
    }
  },async error => {
    console.log('请求出错了',error);
    if(error.response.data.code === 10002){
     console.log('token失效');
     await store.dispatch('user/logout')
     router.push('/login?return_url=' + encodeURIComponent(router.currentRoute.fullPath))
    }
    console.dir(error)
    return Promise.reject(error) // 返回执行错误 让当前的执行链跳出成功 直接进入 catch
  })


  



export default service